iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0
是的,這篇是踩雷紀錄。
中間都是記錄過程,結論會直接寫在文末。

https://ithelp.ithome.com.tw/upload/images/20251004/20168437MxQUOvlDO6.png

其實 Bedrock 的測試中,一個小時裡大概有半小時以上都在遭遇這個錯誤訊息...

ThrottlingException
Too many requests, please wait before trying again.

在 AWS Bedrock 中,調用 API 的次數是有額度限制的。
...其實不只 Bedrock,還有其他雲端服務也都有類似的額度機制。
多半會以 一秒鐘/一分鐘幾次操作 + 總額度 做限制,任一個額度用滿就會開始報錯。

以下節錄官方文件:

ThrottlingException
HTTP 狀態碼:429
原因:請求因超過 Amazon Bedrock 的帳戶配額而遭拒

解決方案:
檢查 Amazon Bedrock 服務配額主控台中的 Amazon Bedrock 服務配額,以了解分配給您帳戶的限制
我們建議採用 AWS 建議的重試方法,搭配指數退避和隨機抖動來改善可靠性
如果您有高輸送量需求,建議您針對使用案例探索佈建輸送量
如果您的工作負載流量超過您的帳戶配額,請聯絡您的客戶經理或 AWS Support 以請求提高配額

雖然官方提供了解決方案,但實際上在 Bedrock Playground 測試的時候,幾乎是以 5-10 分鐘執行一次的頻率使用 (因為還一邊在編輯文章),常理判斷應該不太會撞到使用額度上限才對...。

既然從 Bedrock 的錯誤訊息中看不出是哪個項目已經用到額度上限,那就只好實際進到 Amazon Bedrock 的配額儀表板。
但卻又因為:

  • 不清楚 Bedrock Playground 使用到的額度項目
  • 透過「使用率」排序也看不出來
  • Bedrock 總共有 17 頁,每頁 25 項的配額項目,超過 400 筆的限制項目也很難一個一個找

所以...在鐵人賽的時間限制下,來不及判斷是哪個額度用罄。
最後就只能按照錯誤訊息上的指示:

Wait before trying again.

參考官方文件
對 Amazon Bedrock API 錯誤代碼進行故障診斷
Amazon Bedrock > API Reference > Common Errors

題外話,雖然在測試 Claude 3.5 Sonnet 的時候瘋狂報錯到厭世的程度,但換成 Claude 3.7 Sonnet 就好了...

誰來把我的時間還給我!!!

------------------------------------ 以上是 2025.10.02 的紀錄 ------------------------------------

不過,既然要寫成番外篇,就打算找找看到底是什麼原因造成這個錯誤訊息!
順便也把查詢過程跟使用到的資源記錄下來。

  • 查詢 AWS 官方文件:Amazon Bedrock endpoints and quotas
    試著直接在搜尋框打上 Claude 3.5 Sonnet,或是直接在 AWS Console 的 Service Quotas > AWS 服務 > Bedrock 中搜尋,都可以找到相關的額度限制。
    條目實在很多,就不一一贅述,但大致上可以分成三種類型

    • 檔案大小 / 總容量
    • 請求次數:每分鐘上限 & 總筆數上限是各別限制,其中一項超過額度就會受限
    • Token 數量

    而每個項目又會依照:單一輸入 / 批次輸入、單一 Region / 跨區 而有不同的分別。

⚠️ 不同的模型在不同的 Region 可用限制可能不同。
   有使用需求時建議先確認後再決定要在哪個區域啟用也無妨。
  • 逐步判斷
    報錯的模型是 Claude 3.5 Sonnet v1,使用情境是在 Bedrock Playground 中做測試,再加上這個模型不支援跨區域推論,篩選下來比較可能有關的限制是:
    1. On-demand model inference requests per minute for Anthropic Claude 3.5 Sonnet
      Claude 3.5 Sonnet 按需推論 — 每分鐘推論請求數上限
      預設值:20(不可調整)
      → 雖然一分鐘 20 RPM (Request Per Minute) 的額度不算高,但別說是一分鐘了,整篇測試文章寫完也才差不多 20 左右的呼叫次數,應該不會是這個原因。
    2. On-demand model inference tokens per minute for Anthropic Claude 3.5 Sonnet
      Claude 3.5 Sonnet 按需推論 — 每分鐘 Token 上限
      預設值:200,000(不可調整)
      → 在測試模型的時候沒有使用任何系統提示,提示詞也只寫了一句話,回覆 token 限制在 1500-2000,實在也不太可能是它。

那到底是為什麼?!

這時候,無意間注意到了模型清單上的「跨區域推論」
https://ithelp.ithome.com.tw/upload/images/20251004/20168437yJVVhFISdf.png

那。是。什。麼。東。西

反正也沒有其他線索,先點進去看看再說!
官方文件:Increase throughput with cross-Region inference


跨區域推論

裡面有一段說明...嗯...該怎麼說呢...
原文是這樣的:

When running model inference in on-demand mode, your requests might be restricted by service quotas or during peak usage times. Cross-Region inference enables you to seamlessly manage unplanned traffic bursts by utilizing compute across different AWS Regions. With cross-Region inference, you can distribute traffic across multiple AWS Regions, enabling higher throughput.

第一句的意思是,如果用的是單一區域的模型,使用者的 Request 可能會因為 service quotas 或使用高峰期而受限,後面的說明大致上就是跨區域推論可以將流量分散到多個 AWS 區域,以實現更高的處理量。

使!用!高!峰!期!

所以意思是就算額度限制沒到,也可能因為剛好在該 Region 的流量尖峰時間使用導致 ThrottlingException 嗎!!!

所以我換成 Claude 3.7 Sonnet 就能用是誤打誤撞矇到了是不是!!!

不是換了模型有效,是換成支援跨區域推論的模型有效...


雖然沒有更直接的說明,但就字面解讀上應該...是有這個可能。
算是親身體驗了一課。

以後 Playground 就直接選有支援「跨區域推論」的模型就好...。

如果同樣遇到明明使用額度沒有超過限制,仍然觸發 ThrottlingException,選的模型剛好又不支援跨區域推論,不妨更換模型試試看,說不定就穩定囉!


429 ThrottlingException

  1. 檢查 Service Quotas 帳戶配額,優先確認 RPM / TPM
  2. 在 Bedrock Playground 使用單區域模型,尖峰時段有可能被限流
    → 改用支援跨區域推論(Cross-Region)的模型
    → 正式場景可考慮 Provisioned Throughput(付費購買專屬運算資源)

上一篇
Day 19. 應該只是文件誤植啦
下一篇
Day 21. 遊樂場玩夠了還是要進實戰
系列文
科學的盡頭是玄學?AI占卜小助手與知識庫驗證27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言